1. Field of the Invention
The present invention relates to a motion compensation encoding method which is adaptive to an amount of motion and more particularly to a motion compensation encoding method for a differential pulse encoded video signal capable of adaptively performing a motion compensation encoding operation even when an amount of motion between images is beyond a predetermined amount of motion. A corresponding apparatus is also disclosed.
The instant application is based on Korean Patent Application No. 94-13488, which is incorporated herein by reference for all purposes.
2. Brief Discussion of Related Art
In a many systems, a video signal is usually encoded into digital data and then processed to improve the quality the picture. However, when the video signal is encoded into the digital data, an amount of data increases dramatically large. To solve such a problem, a conventional video encoding system utilizes a transformation encoding method, a differential pulse code modulation (DPCM) method, a vector quantization method and a variable length coding (VLC) method, thereby removing redundancy data included in a digital video signal to thus reduce the total amount of data.
As shown in FIG. 1, a conventional motion image encoder having a well-known structure processes one frame of a digital video signal constructed from M.times.N pixels. Pixel values of the reconstructed video blocks are stored in memory 10. The pixel values stored in memory 10 is applied to a motion estimator 18, a subtracter 31 and a ratio controller 20. Motion estimator 18 uses pixel values of a current image supplied from memory 10 and pixel values of a reference image stored in a frame memory 17, to estimate an amount of motion with respect to the respective video blocks of the current image, where motion estimation is performed on the basis of correlation between frames. Motion estimator 18 finds a reference video block having image information nearly identical to that of a current video block used for comparison in a search area which becomes a part of the reference image, and then generate a motion vector MV representing the spatial position difference between the current video block and the reference video block.
A motion compensator 19 reads pixel values of the reference video block which is designated by motion vector MV produced by motion estimator 18, from frame memory 17. The read pixel values are output to subtracter 31. Subtracter 31 subtracts a corresponding pixel value applied from motion compensator 19 from a pixel value supplied from memory 10 for a differential pulse code modulation and outputs a differential pixel value obtained by this subtraction to a transformer 11.
A transformer 11 transforms spatial region pixel values supplied from subtracter 31 into frequency region transform coefficient values. Transformer 11 uses one among a discrete cosine transform (DCT) method, a Walsh-Hadamard transform (WHT) method, a discrete Fourier transform (DFT) method or a discrete sine transform (DST) method, to perform a transform operation in units of a video block having M.times.N pixels. The transform coefficient values output from transformer 11 are then quantized by a quantizer 12 to then be supplied to a variable-length coder 13 and an inverse quantizer 15.
Quantizer 12 and inverse quantizer 15 quantizes and inverse-quantizes, respectively, the input data according to a quantization control signal Qss applied from ratio controller 20. Since technologies in connection with quantizer 12 and inverse quantizer 15 are well known, detailed descriptions thereof will be omitted.
Variable-length coder 13 variable-length-codes the input data. A buffer 14 temporarily stores the data output from variable-length coder 13 prior to being transmitted, and outputs a buffer fullness representing a storage state of buffer 14 to ratio controller 20. Ratio controller 20 generates a control signal Qss for quantization on the basis of the pixel values supplied from memory 10 and the buffer fullness applied from buffer 14.
On the other hand, an inverse transformer 16 performs an inverse transform of the transform coefficient values applied from inverse quantizer 15 with respect to the transform by transformer 11, to generate spatial region pixel values. An adder 32 adds pixel values applied from motion compensator 19 and pixel values applied from inverse transformer 16, to then outputs the result to frame memory 17. Frame memory 17 stores the pixel values applied from adder 32. The quantization control signal generated by ratio controller 20, the motion vector MV generated by motion estimator 18 and output data Vc of buffer 14 are all supplied to a video decoder shown in FIG. 2. Switches 33 and 34 are used for reducing differences between an image prior to being encoded by differential pulse code modulation in the motion picture encoder shown in FIG. 1 and an image after decoding in the decoder shown in FIG. 2.
In the motion decoder of FIG. 2, variable-length decoder 21 variable-length-decodes data Vc output from buffer 14. An inverse quantizer 22 and an inverse transformer 23 perform the same functions as those of inverse quantizer 15 and inverse transformer 23 of FIG. 1, respectively. Motion compensator 24 reads pixel values from frame memory 25 corresponding to motion vector MV to supply the read pixel values to an adder 26. Adder 26 adds the output data of motion compensator 24 to the output data of inverse transformer 23, to output the result to a display and frame memory 25. A switch 27 is used for the same purpose as those of above switches 33 and 34.
Since the motion image encoder shown in FIG. 1 uses a search area composed of the number of pixels smaller than one frame to find a reference video block having the substantially same image information as that of a current video block, a reference video block having the same image information as that of the current video block will not exist in a given search area, in case of a fast moving picture or a whole faning picture such as sports. The FIG. 1 motion image encoder does not perform a non-intracoding operation which obtains a difference value between image frames by using differential pulse code modulation with respect to the current video block, but performs an intracoding operation. Accordingly, an amount of bits of the encoded data becomes large. Such a problem lowers the total quality of picture and heightens the probability of occurrence of an overflow condition in buffer 14, in a system by a predetermined data standard which uses a proper combination of an intracoding and a non-intracoding.